To provide for secure communications and protection of financial, military, medical or other data requiring a high degree of protection, computer and microprocessor-based systems now implement various security measures. These measures are generally intended to preclude an attacker's illicit access to data stored in a memory being accessed by the microprocessor, for example, because the memory and microprocessor are on the same circuit board and/or coupled by a bus. Common types of attacks on such processors are (i) copy and paste, (ii) data replay, and (iii) pattern recognition of known data. In copy and paste attacks an adversary tries to read a range of locations of memory and copy it to somewhere else where it can be decrypted and used. The success or failure of this also enables the adversary to determine whether any encryption scheme depends on the memory addresses. In data replay attacks, the adversary copies content from a memory location at one time during operation of the system back later to the same memory location to try to cause predictable changes. Such attacks can cause harm to a secure computer, for example by creating an infinite loop, or otherwise impact the program. In a known data recognition attack, an adversary may attempt to learn an encryption key by watching writes of known data to the same address. Herein we provide a more secure approach to protecting microprocessor accesses to a memory.